java从csv文件中删除记录
我正在制作一个程序,将删除一个特定的记录,用户将输入一个特定的id。该记录将从名为数据库的现有csv文件中删除。csv和一个名为temp的临时文件。csv的创建有助于这一过程。代码已编译并运行,但当我输入要删除的id时,控制台会显示一个对话框,显示错误,但没有详细说明错误。可能是什么错误,如何解决
import java.io.*;
import java.util.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
import javax.swing.*;
public class delete {
public static Scanner x;
public static void main(String[] args) {
String filepath = "Database.csv";
System.out.print("Enter the id you want to delete: ");
Scanner sc = new Scanner(System.in);
String removeTerm = sc.nextLine();
removeRecord(filepath,removeTerm);
}
public static void removeRecord(String filepath, String removeTerm)
{
String tempFile = "temp.csv";
File oldFile = new File(filepath);
File newFile = new File(tempFile);
String id=""; String fn=""; String ln=""; String sl=""; String lc="";
try{
FileWriter fw = new FileWriter(tempFile,true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw= new PrintWriter(bw);
x = new Scanner(new File(filepath));
x.useDelimiter("[,\n]");
while(x.hasNext())
{
id = x.next();
fn = x.next();
ln = x.next();
sl = x.next();
lc = x.next();
if(!id.equals(removeTerm))
{
pw.println(id + "," + fn + "," + ln + "," + sl + "," + lc);
}
}
x.close();
pw.flush();
pw.close();
oldFile.delete();
File dump = new File(filepath);
newFile.renameTo(dump);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Error");
}
}
}
# 1 楼答案
如果打印异常,您可以看到可能是什么错误:
将堆栈跟踪打印到
System.err
:使用JOptionPane,将异常打印到那里:
我想你知道自己的问题后就能解决